package com.egg.auth.service.menu;

import com.egg.auth.entity.menu.Menu;
import com.egg.auth.model.request.web.MenuPostOrPut;
import com.egg.auth.model.response.web.MenuTree;
import com.egg.auth.model.response.web.RouterTree;
import com.egg.common.mybatis.service.IBaseService;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Optional;


public interface IMenuService extends IBaseService<Menu> {


    void delMenu(Collection<? extends Serializable> ids);

    List<Menu> findAll();

    List<Menu> findByUserId(Serializable userId);

    /**
     * 转菜单树
     *
     * @return
     */
    List<MenuTree> convertMenuTree(List<Menu> menuList);

    /**
     * 转路由树
     *
     * @return
     */
    List<RouterTree> convertRouterTree(List<MenuTree> menuTreeList);

    Long add(MenuPostOrPut param);

    void edit(Serializable id, MenuPostOrPut param);

    List<Menu> find(Optional<String> name);
}
